#!/bin/bash
# 
# Archivo: recfacial.sh
# =====================
# 
# Este script es responsable por inicializar las variables de ambiente que son
# necesarias para la ejecución del sistema. En estos momentos solamente ejecuta
# un script de prueba.
# 
# Variables de entorno definidas
# ==============================
# 
#  - PYTHONPATH: Agrega los directorios que contienen el código fuente y los
#                scripts de prueba
#    
#  - DIRCONF: Directorio que contiene los archivos de configuración.
#
#  - DIRBD: Agrega el directorio en que se encuentran las bases de datos, este
#           valor es usado para fines de prueba
#
# Opciones 
# ======== 
# 
#   -d:     Ejecuta el sistema en modo de depuración. esta opción requiere que
#           tanto IPython como ipdb estén instalados en el sistema.
# 
#   -p:     Ejecuta una prueba
# 
#   -h, -?: Muestra la ayuda
# 

export    APPNAME=`basename $0`
export     APPDIR=$PWD
export PYTHONPATH=$APPDIR/src:$APPDIR/test:$PYTHONPATH # Indica dónde buscar mó-
                                                       # dulos
export     PYTHON=/usr/bin/python                # Intérprete de Python
export   DEBUGGER=/usr/bin/ipdb                  # Depurador de Python
export    DIRCONF=$APPDIR/conf                   # Directorio de configuración
export  DIRSALIDA=$APPDIR/resultados             # Directorio que los datos de
                                                 # salida
export      DIRBD=$APPDIR/bd                     # Directorio que contiene las
                                                 # Bases de datos (default)
declare    INTERP=$PYTHON
declare    SCRIPT=src/refac.py
declare    PRUEBA=
declare   PROCESO=

##
#
# Función ayuda:
# 
# Despliega une mensaje de ayuda que indica cómo usar este script
#

function ayuda {
    echo "Uso: $APPNAME [ -d | -p <PRUEBA> | [ -h | -? ] ]"
    echo
    echo "Opciones disponibles:"
    echo " -d          Modo de depuración."
    echo " -p <PRUEBA> Modo de prueba. "
    echo " -h, -?      Muestra este mensaje de ayuda."
    echo
    echo Si no se especifica ninguna opción, el sistema será ejecutado\
        normalmente.
    exit 0
}

function muestra_entorno {
    echo Python _________ $PYTHON
    echo Depurador ______ $DEBUGGER
    echo Datos __________ $DIRBD
    echo Configuración: _ $DIRCONF

    if [[ $PRUEBA ]]; then
        echo Prueba _________ $PRUEBA
    fi

}

##
#
# Función ejecutar:
# 
# Una vez terminado el proyecto, esta función será invocada para ejecutar el
# sistema.
#


function ejecutar {
    echo "Gracias por usar $0"
    exec $INTERP $SCRIPT
}

while getopts "p:dh" OPT ; do
    case $OPT in
        d)
            INTERP=$DEBUGGER
            ;;
        p)
            PRUEBA=$OPTARG
            SCRIPT=test/test_$PRUEBA.py

            ;;
        h)
            ayuda
            ;;
        ?)
            ayuda
            ;;
        *)
            ayuda
            ;;
    esac
done

muestra_entorno
ejecutar 

